package ar.edu.utn.frgp.TPFinalBanco.model;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity(name = "PagoPrestamo")
public class PagoPrestamo implements Serializable {

	private static final long serialVersionUID = 1L;

	@Id
	@Column(name = "idPagoPrestamo")
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Integer idPagoPrestamo;

	@Column(name = "fecha")
	private Date fecha;

	// [EFECTIVO|CUENTA]
	@Enumerated(EnumType.STRING)
	@Column(name = "origen")
	private OrigenDineroEnum origen;

	@Column(name = "dni")
	private String dni;
	
	@Column(name = "nroCuenta")
	private Integer nroCuenta;
	
	@Column(name = "idPrestamo")
	private Integer idPrestamo;
	
	public Integer getIdPrestamo() {
		return idPrestamo;
	}

	public void setIdPrestamo(Integer idPrestamo) {
		this.idPrestamo = idPrestamo;
	}

	public Integer getIdPagoPrestamo() {
		return idPagoPrestamo;
	}

	public void setIdPagoPrestamo(Integer idPagoPrestamo) {
		this.idPagoPrestamo = idPagoPrestamo;
	}

	public Date getFecha() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	public OrigenDineroEnum getOrigen() {
		return origen;
	}

	public void setOrigen(OrigenDineroEnum origen) {
		this.origen = origen;
	}

	public String getDni() {
		return dni;
	}

	public void setDni(String dni) {
		this.dni = dni;
	}

	public Integer getNroCuenta() {
		return nroCuenta;
	}

	public void setNroCuenta(Integer nroCuenta) {
		this.nroCuenta = nroCuenta;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((idPagoPrestamo == null) ? 0 : idPagoPrestamo.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		PagoPrestamo other = (PagoPrestamo) obj;
		if (idPagoPrestamo == null) {
			if (other.idPagoPrestamo != null)
				return false;
		} else if (!idPagoPrestamo.equals(other.idPagoPrestamo))
			return false;
		return true;
	}

}